package net.qhzw.vip.qiyu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import net.qhzw.vip.qiyu.entity.DtsCarRetreat;
import net.qhzw.vip.qiyu.model.ForRetForm;

import javax.servlet.http.HttpServletResponse;
import java.util.Map;

public interface DtsCarRetreatService extends IService<DtsCarRetreat> {

    /***
     * 退车费用分页列表查询
     * @param page
     * @return
     */
    Map<String, Object> findByPage(Page<DtsCarRetreat> page, String idCard, String mobile, String realName, Long siteId, Long shopId);

    /***
     * 退车费用清单
     * @param forRetForm
     * @return
     */
    Map<String, Object> retFeeLst(ForRetForm forRetForm, Long shopId);


    /***
     * 退车申请
     * @param forRetForm
     * @return
     */
    boolean appForRet(ForRetForm forRetForm);

    /***
     * 退车审核
     * @param id
     * @param status
     * @param auditOpinion
     * @return
     */
    boolean checkBack(Long id, Byte status, String auditOpinion, Long shopId);


    /***
     * 结算用户费用
     * @param id
     * @param rfndCertificate
     * @return
     */
    boolean userRefund(Long id, String rfndCertificate);

    /***
     * 查询今日退车量
     * @return
     */
    Map<String, Integer> returnAmount(Long shopId);

    /***
     * 退车费用清单导出
     * @param response
     */
    void export(HttpServletResponse response, String idCard, String mobile, String realName, Long siteId, Long shopId);


    /***
     * 导出退车欠款未结清记录
     */
    void export2(HttpServletResponse response, Long shopId);

    /**
     * 退车支付回调
     * @param outTradeNo
     * @param transactionId
     */
    void payNotify(String outTradeNo, String transactionId, String appId);

    /**
     * 退车退款回调
     * @param outRefundNo
     */
    void refundNotify(String outRefundNo);


    boolean inspect(Long carRentalId);


}
